define(function(require, exports, module) {

  var Backbone = require('backbone');
  var $ = require('jquery');
  var _ = require('underscore');
  var jsonview = require('jsonview');

  var tmpl = require('text!../t.html')

  var cegTmpl = require('tmpl/ceg/index')

  function main() {
    var $app = $('<div id="app">');
    $('#main').html($app);
    $app.append(tmpl);

    // 在一个动画中同时应用三种类型的效果
    $("#go").click(go);

    var html = cegTmpl(1, 1, 1, 'Animation帧动画');
    $app.append(html);
  }

  function go() {
    $("#block")
      // .animate({ 
      //   width: "90%",
      //   height: "100%", 
      //   fontSize: "10em", 
      //   borderWidth: 10
      // }, {
      //   speed: 1000
      // })
      .animate({
        // opacity: 'hide',
        fontSize: "10em"
      }, {
        // duration: 400,
        speed: 3000, // 3s放完
        // easing: 'swing',
        complete: function() { //没有入参
          console.log(1)
        },
        /**
         * 每秒30fps，有多个属性时，每个属性会单独调step
         * val 属性的值
         * initInstance 一个实例
         * {
         *   "elem": jqdom,
         *   "prop": "opacity", //属性
         *   "easing": "swing", //动画easing
         *   "options": { //猜想应该是配置的options和内部默认配置合并的结果
         *     "specialEasing": {
         *       fontSize: undefined
         *     },
         *     "speed": 3000,
         *     "duration": 400,
         *     "queue": "fx",
         *     "complete": function,
         *     "step": function,
         *     "old": function,
         *   },
         *   "now": 0.9743000973127522, //现在值
         *   "start": 1, //开始值
         *   "end": 0, //结束值
         *   "unit": "", //单位
         *   "pos": 0.0256999026872477 //已完成
         * }
         */
        step: function(val, initInstance) { 
          console.log(2, val, initInstance)
        },
        // queue: true, //如果为false不等上面完成立即开始，为true则等上面一个完成再完成下面
        // specialEasing: null
      })
      // .animate({
      //   opacity: 'show'
      // }, {
      //   speed: 1000
      // })
  }

  return main;
})
 